package bma.common.langutil.ai.objectpool;

import bma.common.langutil.ai.stack.AIStack;

public interface AIKeyedPoolableObjectFactory<KTYPE, VTYPE> {

	public boolean makeObject(AIStack<VTYPE> stack, KTYPE key);

	public void activateObject(KTYPE key, VTYPE obj);

	public void passivateObject(KTYPE key, VTYPE obj);

	public boolean validateObject(KTYPE key, VTYPE obj);

	public void destroyObject(KTYPE key, VTYPE obj);

}
